﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

namespace Admin.NET.Application.Entity;

[SugarTable("DeiviceTemplateTrigger", "模板触发器")]
public class DeiviceTemplateTrigger : EntityBaseData
{
    [SugarColumn(Length = 100, IsNullable = false, ColumnDescription = "触发器名")]
    public string TriggerName { get; set; }

    [SugarColumn(ColumnDescription = "触发类型")]
    public TriggerType TriggerType { get; set; }

    [SugarColumn(ColumnDescription = "从机变量")]
    public long TemplatePointId { get; set; }

    [SugarColumn(ColumnDescription = "触发条件")]
    public TriggerCondition TriggerCondition { get; set; }

    [SugarColumn(ColumnDescription = "是否预警")]
    public bool Status { get; set; }

    [SugarColumn(ColumnDescription = "报警抓拍")]
    public bool Capture { get; set; }

    [SugarColumn(Length = 500, IsNullable = true, ColumnDescription = "报警推送内容")]
    public string CustomContentAlarm { get; set; }

    [SugarColumn(Length = 500, IsNullable = true, ColumnDescription = "报警恢复推送内容")]
    public string CustomContentNormal { get; set; }

    [SugarColumn(ColumnDescription = "是否联动")]
    public bool LinkageControlStatus { get; set; }

    [SugarColumn(Length = 1000, IsNullable = true, ColumnDescription = "备注")]
    public string Remark { get; set; }

    [SugarColumn(ColumnDescription = "联动类型")]
    public ControlType ControlType { get; set; }

    [SugarColumn(ColumnDescription = "发送类型")]
    public LinkageControlSendType LinkageControlSendType { get; set; }

    [SugarColumn(ColumnDescription = "联动的变量")]
    public long ControlTemplatePointId { get; set; }

    [SugarColumn(IsNullable = true)]
    public string ControlSendData { get; set; }

    [SugarColumn(IsNullable = true, ColumnDescription = "最大值")]
    public double? Max { get; set; }

    [SugarColumn(IsNullable = true, ColumnDescription = "最小值")]
    public double? Min { get; set; }

    [SugarColumn(IsNullable = true, ColumnDescription = "报警死区")]
    public double? DeadZone { get; set; }
}
